// @Author EthanScriptOn
// @Desc
package queue

// Queue The queue interface, which is used here for task acceptance by the worker pool
type Queue interface {
	// Pull Pull data
	Pull() (interface{}, error)
	// Push Push data
	Push(interface{})
	// Close Close this queue
	Close()
	// IsClose Whether the queue has been closed
	IsClose() bool
	// QueueCap Queue capacity
	QueueCap() int
	// QueueLen Queue length
	QueueLen() int
	// ProcessedTasks The number processed
	ProcessedTasks() int
	// TasksTotal Total number of tasks
	TasksTotal() int
}
